home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / initrd.lz / initrd / scripts / casper-bottom / 23networking < prev    next >
Encoding:
Text File  |  2009-10-28  |  2.8 KB  |  112 lines

  1. #! /bin/sh
  2.  
  3. PREREQ=""
  4. DESCRIPTION="Preconfiguring networking..."
  5. IFFILE="/root/etc/network/interfaces"
  6.  
  7. . /scripts/casper-functions
  8.  
  9. prereqs()
  10. {
  11.        echo "$PREREQ"
  12. }
  13.  
  14. case $1 in
  15. # get pre-requisites
  16. prereqs)
  17.        prereqs
  18.        exit 0
  19.        ;;
  20. esac
  21.  
  22. log_begin_msg "$DESCRIPTION"
  23.  
  24. if [ "${STATICIP}" = "frommedia" -a -e  "$IFFILE" ] ; then
  25.     # will use existent /etc/network/interfaces
  26.     log_end_msg
  27.     exit 0
  28. fi
  29.  
  30. cat > "$IFFILE" <<EOF
  31. auto lo
  32. iface lo inet loopback
  33.  
  34. EOF
  35.  
  36. /sbin/udevadm trigger
  37. /sbin/udevadm settle
  38.  
  39. if [ -z "${NETBOOT}" -a -n "${STATICIP}" -a "${STATICIP}" != "frommedia" ]; then
  40.     parsed=$(echo "${STATICIP}" | sed -e 's/:/ /g')
  41.     for ifline in ${parsed}; do
  42.         ifname="$(echo ${ifline} | cut -f1 -d ',')"
  43.         ifaddress="$(echo ${ifline} | cut -f2 -d ',')"
  44.         ifnetmask="$(echo ${ifline} | cut -f3 -d ',')"
  45.         ifgateway="$(echo ${ifline} | cut -f4 -d ',')"
  46.         cat >> "$IFFILE" <<EOF
  47. auto ${ifname}
  48. iface ${ifname} inet static
  49.     address ${ifaddress}
  50.     netmask ${ifnetmask}
  51.     gateway ${ifgateway}
  52.  
  53. EOF
  54.     done
  55. else
  56.     if [ -z "${NETBOOT}" ]; then
  57.         # default, dhcp assigned
  58.         method="dhcp"
  59.     else
  60.         # make sure that the preconfigured interface would not get reassigned by dhcp
  61.         # on startup by ifup script - otherwise our root fs might be disconnected!
  62.         method="manual"
  63.     fi
  64.     # iterate the physical interfaces and add them to the interfaces list
  65.     if [ "$method" != dhcp ] || [ ! -x /root/usr/sbin/NetworkManager ]; then
  66.         for interface in /sys/class/net/eth* /sys/class/net/ath* /sys/class/net/wlan*; do
  67.             [ -e $interface ] || continue
  68.             i="$(basename $interface)"
  69.             cat >> "$IFFILE" <<EOF
  70. auto $i
  71. iface $i inet $method
  72.  
  73. EOF
  74.         done
  75.     fi
  76.     if [ ! -f /root/etc/resolv.conf -a -f /netboot.config ] ; then
  77.         # create a resolv.conf if it is not present
  78.         cp /netboot.config /root/var/log/netboot.config
  79.         rc_search=$(cat netboot.config | awk '/domain/{print $3}')
  80.         rc_server0=$(cat netboot.config | awk '/dns0/{print $5}')
  81.         rc_server1=$(cat netboot.config | awk '/dns0/{print $8}')
  82.         rc_server0="nameserver ${rc_server0}"
  83.         if [ "${rc_server1}" = "0.0.0.0" ]; then
  84.             rc_server1=""
  85.         else
  86.             rc_server1="nameserver ${rc_server1}"
  87.         fi
  88.         cat > /root/etc/resolv.conf <<EOF
  89. # /etc/resolv.conf
  90. # Autogenerated by casper
  91. search ${rc_search}
  92. domain ${rc_search}
  93. ${rc_server0}
  94. ${rc_server1}
  95. EOF
  96.         cat /root/etc/resolv.conf >> /root/var/log/netboot.config
  97.     fi
  98. fi
  99.  
  100. if [ ! -x /root/usr/sbin/NetworkManager ]; then
  101.     for i in eth0 eth1 eth2 ath0 wlan0; do
  102.         grep -q "iface $i" $IFFILE && continue
  103.         cat >> "$IFFILE" <<EOF
  104. auto $i
  105. iface $i inet dhcp
  106.  
  107. EOF
  108.     done
  109. fi
  110.  
  111. log_end_msg
  112.